/*!
 * 文件名称： main.c
 * 描    述： ADC-内部温度传感器和参考电压采样实验主函数文件
 * 版本：     2023-12-03, V1.0
*/

/*
* GD32F303东方红开发板V1.0
* 淘宝商城：   https://juwo.taobao.com
* 技术交流：   https://www.gd32bbs.com/ask/
* 视频学习：   https://space.bilibili.com/475462605
* 微信公众号： gd32bbs
* Copyright    苏州聚沃电子科技有限公司
* 版权所有，盗版必究。
*/

#include "gd32f30x.h"
#include <stdio.h>
#include "bsp_adc.h"
#include "driver_public.h"
#include "bsp_uart.h"
float temperature;
float vref_value;

/*!
* 说明     main函数
* 输入     无
* 输出     无
* 返回值   无
*/

int main(void)
{
	driver_init();//delay函数初始化
	bsp_uart_init(&BOARD_UART);//BOARD_UART串口初始化
	bsp_Vref_Vtemp_ADC_config();//内部通道ADC配置和中断使能
	while (1)
	{
		driver_adc_software_trigger_enable(&VRef_VTem_ADC);	//软件触发ADC
		delay_ms(1000);
		temperature = (1.45 - Vref_Vtemp_data[0]*3.3/4095) * 1000 / 4.1 + 25;	/*内部温度ADC转换值转换为实际温度值*/
    vref_value = (Vref_Vtemp_data[1] * 3.3 / 4095);	/*内部参考电压ADC转换值转换为实际电压值*/		
		printf_log(" the temperature data is %2.0f degrees Celsius\r\n", temperature);	/*打印实际温度值*/
    printf_log(" the reference voltage data is %5.3fV \r\n", vref_value);	/*打印内部参考实际电压值*/
	}
}







